package com.kanesoft.android.gdx.actors.fight;

import com.kanesoft.android.gdx.control.WorldControl;
import com.kanesoft.android.gdx.widgets.sprites.SpriteInfo;
import com.kanesoft.android.gdx.widgets.sprites.SpriteSlideInfo;

public class FightActorBride extends FightActorObject {

    private SpriteInfo siActionWaiting;
    private SpriteInfo siActionWalking;
    private SpriteInfo siActionPunch;
    private SpriteInfo siActionKick;
    private SpriteInfo siActionJump;
    private SpriteInfo siActionFalling;
    private SpriteInfo siActionFallingPunch;
    private SpriteInfo siActionFallingKick;
    private SpriteInfo siActionHittenByPunch;
    private SpriteInfo siActionHittenByKick;
    private SpriteInfo siActionHittenByFallingKick;
    private SpriteInfo siActionHittenInTheAir;
    private SpriteInfo siActionThrowingFireball;
    private SpriteInfo siActionFireballReleased;

    
    public FightActorBride(int x, int y, float scale, WorldControl worldCtrl) {
        super(x, y, scale*2f, scale*1.5f, worldCtrl);
    }

    protected void initializeMoviments() {
        
        siActionWaiting = new SpriteInfo("data/bride.png", 0.250f);
        siActionWaiting.addSpriteSlide(new SpriteSlideInfo(0, 24, 120, 200));
        siActionWaiting.addSpriteSlide(new SpriteSlideInfo(120, 24, 120, 200));
        siActionWaiting.addSpriteSlide(new SpriteSlideInfo(120*2, 24, 120, 200));
        waitingState = new FighterWaiting(siActionWaiting, this);
        loseState = new FighterLose(siActionWaiting, this);
        winState = new FighterWin(siActionWaiting, this);
        
        siActionWalking = new SpriteInfo(siActionWaiting, 0.150f);
        siActionWalking.addSpriteSlide(new SpriteSlideInfo(120*3, 24, 120, 200));
        siActionWalking.addSpriteSlide(new SpriteSlideInfo(120*4, 24, 120, 200));
        siActionWalking.addSpriteSlide(new SpriteSlideInfo(120*5, 24, 120, 200));
        siActionWalking.addSpriteSlide(new SpriteSlideInfo(120*6, 24, 120, 200));
        walkingForwardState = new FighterWalkingForward(siActionWalking, this);
        walkingBackwardState = new FighterWalkingBackward(siActionWalking, this);
        
        siActionPunch = new SpriteInfo(siActionWaiting, 0.130f);
        siActionPunch.addSpriteSlide(new SpriteSlideInfo(0, 224, 120, 200));
        siActionPunch.addSpriteSlide(new SpriteSlideInfo(120, 224, 120, 200, true));
        siActionPunch.addSpriteSlide(new SpriteSlideInfo(120*2, 224, 120, 200));
        siActionPunch.addSpriteSlide(new SpriteSlideInfo(120*3, 224, 140, 200, true));
        punchingState = new FighterPunching(siActionPunch, this);
        
        siActionJump = new SpriteInfo(siActionWaiting, 0.300f);
        siActionJump.addSpriteSlide(new SpriteSlideInfo(120*5, 224, 120, 175));
        siActionJump.addSpriteSlide(new SpriteSlideInfo(120*5, 224, 120, 175));
        jumpingState = new FighterJumping(siActionJump, this);
        
        siActionFalling = new SpriteInfo(siActionWaiting, 0.500f);
        siActionFalling.addSpriteSlide(new SpriteSlideInfo(120*5, 224, 120, 175));
        siActionFalling.addSpriteSlide(new SpriteSlideInfo(120*5, 224, 120, 175));
        siActionFalling.addSpriteSlide(new SpriteSlideInfo(120*6, 224, 120, 175));
        siActionFalling.addSpriteSlide(new SpriteSlideInfo(120*6, 224, 120, 175));
        fallingState = new FighterFalling(siActionFalling, this);

        siActionKick = new SpriteInfo(siActionWaiting, 0.150f);
        siActionKick.addSpriteSlide(new SpriteSlideInfo(120*7, 24, 200, 200));
        siActionKick.addSpriteSlide(new SpriteSlideInfo(120*7, 224, 200, 200, true));
        siActionKick.addSpriteSlide(new SpriteSlideInfo(120*7, 24, 200, 200));
        kickingState = new FighterKicking(siActionKick, this); 
        
        siActionFallingKick = new SpriteInfo(siActionWaiting, 0.150f);
        siActionFallingKick.addSpriteSlide(new SpriteSlideInfo(120*7, 424, 190, 200, true));
        siActionFallingKick.addSpriteSlide(new SpriteSlideInfo(120*7, 424, 190, 200, true));
        fallingKickState = new FighterFallingKick(siActionFallingKick, this);
        
        siActionFallingPunch = new SpriteInfo(siActionWaiting, 0.150f);
        siActionFallingPunch.addSpriteSlide(new SpriteSlideInfo(120*5, 424, 150, 125, true));
        siActionFallingPunch.addSpriteSlide(new SpriteSlideInfo(120*5, 424, 150, 125, true));
        fallingPunchState = new FighterFallingPunch(siActionFallingPunch, this);
        
        // Hit Actions......
        siActionHittenByPunch = new SpriteInfo(siActionWaiting, 0.300f);
        siActionHittenByPunch.addSpriteSlide(new SpriteSlideInfo(0, 424, 120, 200));
        siActionHittenByPunch.addSpriteSlide(new SpriteSlideInfo(0, 424, 120, 200));
        hittenByPunch = new FighterHittenByPunch(siActionHittenByPunch, this);
        
        siActionHittenByKick = new SpriteInfo(siActionWaiting, 0.300f);
        siActionHittenByKick.addSpriteSlide(new SpriteSlideInfo(120, 424, 120, 200));
        siActionHittenByKick.addSpriteSlide(new SpriteSlideInfo(120, 424, 120, 200));
        hittenByKick = new FighterHittenByKick(siActionHittenByKick, this);
        
        siActionHittenByFallingKick = new SpriteInfo(siActionWaiting, 0.300f);
        siActionHittenByFallingKick.addSpriteSlide(new SpriteSlideInfo(0, 424, 120, 200));
        siActionHittenByFallingKick.addSpriteSlide(new SpriteSlideInfo(0, 424, 120, 200));
        hittenByFallingKick = new FighterHittenByFallingKick(siActionHittenByFallingKick, this);
        hittenByFallingPunch = new FighterHittenByFallingPunch(siActionHittenByFallingKick, this);
        
        siActionHittenInTheAir = new SpriteInfo(siActionWaiting, 0.300f);
        siActionHittenInTheAir.addSpriteSlide(new SpriteSlideInfo(120*2, 424, 120, 150));
        siActionHittenInTheAir.addSpriteSlide(new SpriteSlideInfo(120*2, 424, 120, 150));
        hittenByPowerFireball = new FighterHittenByPowerFireball(siActionHittenInTheAir, this);
        hittenInTheAir = new FighterHittenInTheAir(siActionHittenInTheAir, this);

        siActionThrowingFireball = new SpriteInfo(siActionWaiting, 0.150f);
        siActionThrowingFireball.addSpriteSlide(new SpriteSlideInfo(0, 624, 120, 200));
        siActionThrowingFireball.addSpriteSlide(new SpriteSlideInfo(120, 624, 120, 200));
        siActionThrowingFireball.addSpriteSlide(new SpriteSlideInfo(120*2, 624, 120, 200));
        throwFireball = new FighterThrowFireball(siActionThrowingFireball, this);

        siActionFireballReleased = new SpriteInfo(siActionWaiting, 0.200f);
        siActionFireballReleased.addSpriteSlide(new SpriteSlideInfo(120*3, 624, 120, 200));
        siActionFireballReleased.addSpriteSlide(new SpriteSlideInfo(120*3, 624, 120, 200));
        fireballReleased = new FighterFireballReleased(siActionFireballReleased, this);
    }

}
